package com.xoa.service.book;

import com.xoa.dao.book.BookTypeMapper;
import com.xoa.model.book.BookType;
import com.xoa.util.ToJson;
import com.xoa.util.common.L;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 创建作者:   牛江丽
 * 创建日期:   2017年10月23日 下午15:20:00
 * 类介绍  :图书类型service
 * 构造参数:
 */
@Service
public class BookTypeService {


    @Resource
    private BookTypeMapper bookTypeMapper;

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:23:00
     * 方法介绍:   添加图书类型
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    @Transactional
    public ToJson<BookType> insertType(BookType bookType){
        ToJson<BookType> json = new ToJson<BookType>(1, "error");
        try{
            int count=bookTypeMapper.insertType(bookType);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookTypeService insertType:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:24:00
     * 方法介绍:   根据id修改图书类型
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    @Transactional
    public ToJson<BookType> upTypeById(BookType bookType){
        ToJson<BookType> json = new ToJson<BookType>(1, "error");
        try{
            int count=bookTypeMapper.upTypeById(bookType);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookTypeService upTypeById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:25:00
     * 方法介绍:   根据id删除图书类型
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    @Transactional
    public ToJson<BookType> delTypeById(Integer typeId){
        ToJson<BookType> json = new ToJson<BookType>(1, "error");
        try{
            int count=bookTypeMapper.delTypeById(typeId);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookTypeService delTypeById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:26:00
     * 方法介绍:   根据id查询图书类型
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    public ToJson<BookType> selTypeById(Integer typeId){
        ToJson<BookType> json = new ToJson<BookType>(1, "error");
        try{
            BookType bookType=bookTypeMapper.selTypeById(typeId);
            json.setObject(bookType);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookTypeService selTypeById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:27:00
     * 方法介绍:   查询所有图书类型
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    public ToJson<BookType> selAllType(){
        ToJson<BookType> json = new ToJson<BookType>(1, "error");
        try{
            List<BookType> list=bookTypeMapper.selAllType();
            json.setObj(list);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookTypeService selAllType:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月26日 下午17:31:00
     * 方法介绍:   根据类型名称查询是否已存在
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    public ToJson<BookType> selCountByTypeName(String typeName){
        ToJson<BookType> json = new ToJson<BookType>(1, "error");
        try{
            int count=bookTypeMapper.selCountByTypeName(typeName);
            json.setTotleNum(count);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookTypeService selCountByTypeName:"+e);
            e.printStackTrace();
        }
        return  json;
    }

}
